/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package pessoas.presenter.stateContatoView;

import pessoas.collection.Contatos;
import pessoas.model.Contato;
import pessoas.model.Usuario;
import pessoas.presenter.ContatoPresenter;
import pessoas.presenter.ContatoZelador;

/**
 *
 * @author Bush
 */
public class VisualizacaoState extends ManterContatoState {

    private Contato contato;
    private ContatoZelador contatoZelador;

    public VisualizacaoState(ContatoPresenter presenter, Contato contato) {
        super(presenter, contato);
        this.contato = contato;
        this.contatoZelador = ContatoZelador.getInstancia();
        iniciandoView();
    }

    public void iniciandoView() {
        presenter.getView().getBtnSalvar().setText("Editar");
        presenter.getView().getBtnFechar().setText("Fechar");
        presenter.getView().getTxtNome().setText(contato.getNome());
        presenter.getView().getTxtSobrenome().setText(contato.getSobrenome());
        String tel = contato.getTelefone().substring(4, 8) + contato.getTelefone().substring(9);
        if (tel.length() == 8) {
            presenter.getView().getTxtTelefone().setValue(contato.getTelefone().substring(0, 4) + contato.getTelefone().substring(4));
        } else {
            presenter.getView().getTxtTelefone().setValue(contato.getTelefone().substring(0, 4) + contato.getTelefone().substring(5));
        }
        presenter.getView().getComboUf().setSelectedItem(contato.getUf());
        presenter.getView().getComboOper().setSelectedItem(contato.getOperadora());

        presenter.getView().getBtnNovo().setVisible(true);
        presenter.getView().getTxtNome().setEditable(false);
        presenter.getView().getTxtSobrenome().setEditable(false);
        presenter.getView().getTxtTelefone().setEditable(false);

        presenter.funcaoBtnSalvarEditar(true);// troca função do Botão para Edição
        presenter.funcaoBtnFecharCancelar(true);// troca função do Botão para Fechar
        presenter.pegaContatoView();
    }

    @Override
    public void salvar(Usuario usuario, Contatos contatos) {
    }

    @Override
    public void editar(Usuario usuario, Contatos contatos, Contato contato) {
        presenter.funcaoBtnFecharCancelar(false);// troca função do Botão para Cancelar
        contatoZelador.adcionarMemento(contato.getContatoMemento());
        presenter.setEstado(new EdicaoState(presenter, contato));
    }

    @Override
    public void novo() {
        presenter.funcaoBtnFecharCancelar(false);// troca função do Botão para Cancelar
        contatoZelador.adcionarMemento(contato.getContatoMemento());
        presenter.setEstado(new InclusaoState(presenter, null));
    }

    @Override
    public void fechar() {
        presenter.getView().dispose();
    }

    @Override
    public void cancelar() {
    }

}
